"""
分析提示词生成器模块
根据不同的分析类型生成专门化的AI分析提示词
"""
from typing import Dict, Any


class PromptGenerator:
    """分析提示词生成器类"""

    @staticmethod
    def format_market_cap(market_cap):
        """格式化市值"""
        if not market_cap or market_cap == 0:
            return 'N/A'
        if market_cap > 1e12:
            return f"${market_cap/1e12:.1f}万亿"
        elif market_cap > 1e9:
            return f"${market_cap/1e9:.1f}亿"
        elif market_cap > 1e6:
            return f"${market_cap/1e6:.1f}百万"
        else:
            return f"${market_cap:,.0f}"

    @staticmethod
    def format_percentage(value):
        """格式化百分比"""
        if not value or value == 0:
            return 'N/A'
        return f"{value*100:.2f}%" if abs(value) < 1 else f"{value:.1f}%"

    @staticmethod
    def format_currency(value):
        """格式化货币"""
        if not value or value == 0:
            return 'N/A'
        if value > 1e9:
            return f"${value/1e9:.1f}亿"
        elif value > 1e6:
            return f"${value/1e6:.1f}百万"
        else:
            return f"${value:,.2f}"

    @staticmethod
    def build_stock_info(data: Dict[str, Any]) -> str:
        """
        构建完整的股票信息字符串

        Args:
            data: 股票数据字典

        Returns:
            格式化的股票信息字符串
        """
        symbol = data.get('symbol', '未知股票')
        company_name = data.get('company_name', '未知公司')
        user_question = data.get('user_question', '')

        stock_info = f"""**📊 股票基础信息**
- **股票代码**: {symbol}
- **公司名称**: {company_name}
- **当前价格**: ${data.get('current_price', 'N/A')}
- **今日涨跌幅**: {data.get('day_change', 'N/A')}%
- **今日最高**: ${data.get('day_high', 'N/A')}
- **今日最低**: ${data.get('day_low', 'N/A')}
- **成交量**: {data.get('volume', 'N/A'):,}
- **平均成交量**: {data.get('average_volume', 'N/A'):,}
- **52周区间**: ${data.get('52_week_low', 'N/A')} - ${data.get('52_week_high', 'N/A')}
- **市值**: {PromptGenerator.format_market_cap(data.get('market_cap'))}
- **企业价值**: {PromptGenerator.format_market_cap(data.get('enterprise_value'))}
- **行业**: {data.get('sector', 'N/A')} / {data.get('industry', 'N/A')}
- **员工数量**: {data.get('full_time_employees', 'N/A'):,}
- **官网**: {data.get('website', 'N/A')}

**💰 估值指标**
- **PE比率(TTM)**: {data.get('pe_ratio', 'N/A')}
- **PE比率(预期)**: {data.get('forward_pe', 'N/A')}
- **PB比率**: {data.get('pb_ratio', 'N/A')}
- **PEG比率**: {data.get('peg_ratio', 'N/A')}
- **价格/销售额**: {data.get('price_to_sales', 'N/A')}
- **企业价值/营收**: {data.get('ev_to_revenue', 'N/A')}
- **企业价值/EBITDA**: {data.get('ev_to_ebitda', 'N/A')}

**📈 盈利能力指标**
- **净资产收益率(ROE)**: {PromptGenerator.format_percentage(data.get('roe'))}
- **总资产收益率(ROA)**: {PromptGenerator.format_percentage(data.get('roa'))}
- **净利润率**: {PromptGenerator.format_percentage(data.get('profit_margins'))}
- **毛利率**: {PromptGenerator.format_percentage(data.get('gross_margins'))}
- **营业利润率**: {PromptGenerator.format_percentage(data.get('operating_margins'))}
- **EBITDA利润率**: {PromptGenerator.format_percentage(data.get('ebitda_margins'))}

**📊 成长性指标**
- **营收增长率**: {PromptGenerator.format_percentage(data.get('revenue_growth'))}
- **净利润增长率**: {PromptGenerator.format_percentage(data.get('earnings_growth'))}
- **季度盈利增长**: {PromptGenerator.format_percentage(data.get('earnings_quarterly_growth'))}

**💳 财务健康指标**
- **股息率**: {PromptGenerator.format_percentage(data.get('dividend_yield'))}
- **股息率(年度)**: {data.get('dividend_rate', 'N/A')}
- **股息支付率**: {PromptGenerator.format_percentage(data.get('payout_ratio'))}
- **债务股权比**: {data.get('debt_to_equity', 'N/A')}
- **流动比率**: {data.get('current_ratio', 'N/A')}
- **速动比率**: {data.get('quick_ratio', 'N/A')}
- **Beta系数**: {data.get('beta', 'N/A')}

**💵 现金流指标**
- **自由现金流**: {PromptGenerator.format_currency(data.get('free_cashflow'))}
- **经营现金流**: {PromptGenerator.format_currency(data.get('operating_cashflow'))}
- **现金总额**: {PromptGenerator.format_currency(data.get('total_cash'))}
- **债务总额**: {PromptGenerator.format_currency(data.get('total_debt'))}

**📈 技术指标**
- **50日均线**: ${data.get('50_day_average', 'N/A')}
- **200日均线**: ${data.get('200_day_average', 'N/A')}

**🔧 高级技术分析指标**
- **RSI(14)**: {f"{data.get('rsi', 0):.2f}" if data.get('rsi') else 'N/A'}
- **RSI信号**: {data.get('rsi_signal', 'N/A')}
- **MACD**: {f"{data.get('macd', 0):.4f}" if data.get('macd') else 'N/A'}
- **MACD信号线**: {f"{data.get('macd_signal', 0):.4f}" if data.get('macd_signal') else 'N/A'}
- **MACD柱状图**: {f"{data.get('macd_histogram', 0):.4f}" if data.get('macd_histogram') else 'N/A'}
- **布林带上轨**: ${f"{data.get('bb_upper', 0):.2f}" if data.get('bb_upper') else 'N/A'}
- **布林带中轨**: ${f"{data.get('bb_sma', 0):.2f}" if data.get('bb_sma') else 'N/A'}
- **布林带下轨**: ${f"{data.get('bb_lower', 0):.2f}" if data.get('bb_lower') else 'N/A'}
- **布林带位置**: {f"{data.get('bb_position', 0):.1f}" if data.get('bb_position') else 'N/A'}%
- **20日波动率**: {PromptGenerator.format_percentage(data.get('volatility_20d'))}
- **趋势信号**: {data.get('trend_signal', 'N/A')}
- **1月动量**: {f"{data.get('momentum_1m', 0):.2f}" if data.get('momentum_1m') else 'N/A'}%
- **3月动量**: {f"{data.get('momentum_3m', 0):.2f}" if data.get('momentum_3m') else 'N/A'}%
- **成交量比例**: {f"{data.get('volume_ratio', 0):.2f}" if data.get('volume_ratio') else 'N/A'}x

**👨‍💼 分析师预期**
- **目标均价**: ${data.get('target_mean_price', 'N/A')}
- **目标价区间**: ${data.get('target_low_price', 'N/A')} - ${data.get('target_high_price', 'N/A')}
- **分析师评级**: {data.get('recommendation_mean', 'N/A')}/5
- **分析师数量**: {data.get('number_of_analysts', 'N/A')}位

**🏢 股权结构**
- **流通股比例**: {PromptGenerator.format_percentage(data.get('held_percent_institutions'))}
- **内部持股**: {PromptGenerator.format_percentage(data.get('held_percent_insiders'))}
- **做空比例**: {PromptGenerator.format_percentage(data.get('short_percent_of_float'))}

**📋 财务摘要**
- **每股收益(TTM)**: ${data.get('trailing_eps', 'N/A')}
- **每股收益(预期)**: ${data.get('forward_eps', 'N/A')}
- **账面价值**: ${data.get('book_value', 'N/A')}
- **总营收**: {PromptGenerator.format_currency(data.get('total_revenue'))}
- **净利润**: {PromptGenerator.format_currency(data.get('net_income'))}
- **流通股数**: {data.get('shares_outstanding', 'N/A'):,}

**🔍 风险评级**
- **整体风险**: {data.get('overall_risk', 'N/A')}
- **审计风险**: {data.get('audit_risk', 'N/A')}
- **董事会风险**: {data.get('board_risk', 'N/A')}
- **薪酬风险**: {data.get('compensation_risk', 'N/A')}
- **股东权益风险**: {data.get('share_holder_rights_risk', 'N/A')}

**📝 公司简介**
{data.get('business_summary', '暂无公司简介')[:500]}

**🎯 用户问题**: {user_question}"""

        return stock_info

    @staticmethod
    def generate_comprehensive_prompt(data: Dict[str, Any]) -> str:
        """生成综合分析提示词"""
        stock_info = PromptGenerator.build_stock_info(data)

        return f"""你是一位专业的股票投资分析师。请基于以下详细的股票数据进行全面的投资价值分析：

{stock_info}

## 📊 综合分析要求
请基于以上提供的全面数据，进行以下六个维度的深度分析：

### 1. 💰 估值深度分析
- **估值合理性评估**：基于PE、PB、PEG、EV/EBITDA等多重指标
- **历史估值对比**：与52周高低点的估值水平对比
- **行业估值定位**：在所属行业中的估值位置
- **内在价值估算**：基于DCF模型的合理价值区间

### 2. 📈 财务健康状况诊断
- **盈利能力综合评价**：ROE、ROA、净利润率等核心指标分析
- **成长性质量评估**：营收增长、盈利增长的可持续性
- **财务稳健性检查**：债务水平、流动性、现金流状况
- **运营效率分析**：各项效率指标的综合评估

### 3. 🔧 技术面信号解读
- **趋势状态分析**：基于移动平均线和价格位置判断
- **技术指标综合**：RSI、MACD、布林带等指标的综合研判
- **量价关系分析**：成交量变化与价格走势的关系
- **短期技术信号**：基于技术指标的短期买卖信号

### 4. 🎯 市场情绪与预期
- **分析师观点汇总**：基于目标价和评级的市场预期
- **投资者结构分析**：机构持仓、内部持股、做空情况
- **市场情绪指标**：基于技术指标的情绪判断
- **预期偏差分析**：当前价格与分析师预期的差距

### 5. ⚠️ 风险全面评估
- **系统性风险**：市场风险、行业风险、宏观经济风险
- **特异性风险**：公司经营风险、财务风险、估值风险
- **风险等级量化**：基于风险评级指标的风险水平
- **风险控制建议**：具体的风险管理措施

### 6. 🚀 投资决策建议
- **明确投资评级**：强力买入/买入/持有/卖出/强力卖出
- **目标价格区间**：基于综合分析的合理价格区间
- **投资时间框架**：短期/中期/长期投资建议
- **仓位配置建议**：建议的投资仓位比例
- **关键监控指标**：需要持续跟踪的核心指标

请充分利用以上提供的详细数据，给出数据驱动的专业分析结论。使用markdown格式，包含表格对比、图表说明等。"""

    @staticmethod
    def generate_valuation_prompt(data: Dict[str, Any]) -> str:
        """生成估值分析提示词"""
        stock_info = PromptGenerator.build_stock_info(data)

        return f"""你是一位资深估值分析师。请基于以下详细的股票数据进行专业的估值分析：

{stock_info}

## 💰 专业估值分析要求
请运用多种估值方法进行深入分析：

### 1. 📊 相对估值矩阵分析
- **PE估值分析**：
  - 当前PE：{data.get('pe_ratio', 'N/A')}
  - 预期PE：{data.get('forward_pe', 'N/A')}
  - PEG比率：{data.get('peg_ratio', 'N/A')}
  - 与历史和同行业对比

- **PB估值分析**：
  - 当前PB：{data.get('pb_ratio', 'N/A')}
  - 账面价值：${data.get('book_value', 'N/A')}
  - 净资产收益率：{PromptGenerator.format_percentage(data.get('roe'))}
  - PB-ROE关系分析

- **企业价值倍数**：
  - EV/Revenue：{data.get('ev_to_revenue', 'N/A')}
  - EV/EBITDA：{data.get('ev_to_ebitda', 'N/A')}
  - 与行业平均水平对比

### 2. 🎯 绝对估值分析
- **DCF现金流折现模型**：
  - 基于历史现金流：{PromptGenerator.format_currency(data.get('free_cashflow'))}
  - 考虑增长率：{PromptGenerator.format_percentage(data.get('revenue_growth'))}
  - 风险调整：基于Beta系数{data.get('beta', 'N/A')}

- **DDM股息折现模型**：
  - 当前股息率：{PromptGenerator.format_percentage(data.get('dividend_yield'))}
  - 股息增长率评估
  - 股息支付率：{PromptGenerator.format_percentage(data.get('payout_ratio'))}

### 3. 📈 估值综合结论
- **估值区间确定**：基于多种方法的合理估值区间
- **当前估值位置**：在估值区间中的位置
- **安全边际分析**：当前价格与内在价值的差距
- **投资价值评级**：基于估值水平的投资建议

请提供详细的计算过程和对比分析，给出明确的估值结论。"""

    @staticmethod
    def generate_financial_prompt(data: Dict[str, Any]) -> str:
        """生成财务分析提示词"""
        stock_info = PromptGenerator.build_stock_info(data)

        return f"""你是一位资深财务分析师。请基于以下详细的财务数据进行全面的财务健康分析：

{stock_info}

## 📊 深度财务分析要求

### 1. 💪 盈利能力综合分析
- **利润率结构分析**：
  - 毛利率：{PromptGenerator.format_percentage(data.get('gross_margins'))}
  - 营业利润率：{PromptGenerator.format_percentage(data.get('operating_margins'))}
  - 净利润率：{PromptGenerator.format_percentage(data.get('profit_margins'))}
  - EBITDA利润率：{PromptGenerator.format_percentage(data.get('ebitda_margins'))}

- **资产回报效率**：
  - ROE（净资产收益率）：{PromptGenerator.format_percentage(data.get('roe'))}
  - ROA（总资产收益率）：{PromptGenerator.format_percentage(data.get('roa'))}
  - 资产周转效率分析

- **每股收益分析**：
  - TTM每股收益：${data.get('trailing_eps', 'N/A')}
  - 预期每股收益：${data.get('forward_eps', 'N/A')}

### 2. 📈 成长性质量评估
- **收入增长分析**：
  - 营收增长率：{PromptGenerator.format_percentage(data.get('revenue_growth'))}
  - 季度增长趋势：{PromptGenerator.format_percentage(data.get('earnings_quarterly_growth'))}

- **盈利增长分析**：
  - 净利润增长率：{PromptGenerator.format_percentage(data.get('earnings_growth'))}
  - 增长可持续性评估

### 3. 🏦 财务稳健性检查
- **偿债能力分析**：
  - 流动比率：{data.get('current_ratio', 'N/A')}
  - 速动比率：{data.get('quick_ratio', 'N/A')}
  - 债务股权比：{data.get('debt_to_equity', 'N/A')}

- **现金流状况**：
  - 自由现金流：{PromptGenerator.format_currency(data.get('free_cashflow'))}
  - 经营现金流：{PromptGenerator.format_currency(data.get('operating_cashflow'))}
  - 现金流覆盖率分析

### 4. 💰 股东回报分析
- **股息政策评估**：
  - 当前股息率：{PromptGenerator.format_percentage(data.get('dividend_yield'))}
  - 年度股息：{data.get('dividend_rate', 'N/A')}
  - 股息支付率：{PromptGenerator.format_percentage(data.get('payout_ratio'))}

### 5. 📋 财务综合评级
- **财务健康评分**：基于多项指标的综合评分
- **行业地位对比**：与同行业公司对比
- **改善建议**：具体的财务改进建议

请提供详细的财务指标分析和专业的财务健康评价。"""

    @staticmethod
    def generate_technical_prompt(data: Dict[str, Any]) -> str:
        """生成技术分析提示词"""
        stock_info = PromptGenerator.build_stock_info(data)

        return f"""你是一位资深技术分析师。请基于以下详细的技术数据进行专业的技术面分析：

{stock_info}

## 📈 专业技术分析要求
请运用多种技术分析方法进行深入研判：

### 1. 🎯 趋势状态分析
- **价格趋势判断**：
  - 当前价格：${data.get('current_price', 'N/A')}
  - 50日均线：${data.get('50_day_average', 'N/A')}
  - 200日均线：${data.get('200_day_average', 'N/A')}
  - 趋势信号：{data.get('trend_signal', 'N/A')}

- **动量指标分析**：
  - 1月动量：{f"{data.get('momentum_1m', 0):.2f}" if data.get('momentum_1m') else 'N/A'}%
  - 3月动量：{f"{data.get('momentum_3m', 0):.2f}" if data.get('momentum_3m') else 'N/A'}%
  - 动量趋势判断

### 2. 🔧 技术指标综合研判
- **RSI相对强弱指标**：
  - 当前RSI：{f"{data.get('rsi', 0):.2f}" if data.get('rsi') else 'N/A'}
  - RSI信号：{data.get('rsi_signal', 'N/A')}
  - 超买超卖判断

- **MACD指标分析**：
  - MACD线：{f"{data.get('macd', 0):.4f}" if data.get('macd') else 'N/A'}
  - 信号线：{f"{data.get('macd_signal', 0):.4f}" if data.get('macd_signal') else 'N/A'}
  - 柱状图：{f"{data.get('macd_histogram', 0):.4f}" if data.get('macd_histogram') else 'N/A'}
  - 金叉死叉识别

- **布林带分析**：
  - 上轨：${f"{data.get('bb_upper', 0):.2f}" if data.get('bb_upper') else 'N/A'}
  - 中轨：${f"{data.get('bb_sma', 0):.2f}" if data.get('bb_sma') else 'N/A'}
  - 下轨：${f"{data.get('bb_lower', 0):.2f}" if data.get('bb_lower') else 'N/A'}
  - 价格在布林带中的位置：{f"{data.get('bb_position', 0):.1f}" if data.get('bb_position') else 'N/A'}%

### 3. 📊 量价关系分析
- **成交量分析**：
  - 当前成交量：{data.get('volume', 'N/A'):,}
  - 平均成交量：{data.get('average_volume', 'N/A'):,}
  - 成交量比例：{f"{data.get('volume_ratio', 0):.2f}" if data.get('volume_ratio') else 'N/A'}x
  - 量价配合度评估

- **价格位置分析**：
  - 52周高低点：${data.get('52_week_low', 'N/A')} - ${data.get('52_week_high', 'N/A')}
  - 当前价格在年线中的位置
  - 关键支撑阻力位识别

### 4. 📈 波动率与风险评估
- **波动率分析**：
  - 20日波动率：{PromptGenerator.format_percentage(data.get('volatility_20d'))}
  - Beta系数：{data.get('beta', 'N/A')}
  - 价格波动特征

### 5. 🎯 短期交易信号
- **买卖信号识别**：
  - 基于多重技术指标的综合信号
  - 短期交易机会识别
  - 止损止盈位建议

- **时间周期分析**：
  - 短期（1-5天）走势预判
  - 中期（1-4周）趋势展望
  - 关键时间窗口识别

### 6. 📋 技术面综合评级
- **技术面评分**：基于多项技术指标的综合评分
- **趋势强度评级**：上升趋势/下降趋势/震荡整理
- **操作建议**：具体的买卖时机和价位建议

请提供详细的技术指标分析和专业的交易建议。"""

    @staticmethod
    def generate_risk_prompt(data: Dict[str, Any]) -> str:
        """生成风险评估提示词"""
        stock_info = PromptGenerator.build_stock_info(data)

        return f"""你是一位专业的风险评估师。请基于以下详细的数据进行全面的投资风险评估：

{stock_info}

## ⚠️ 专业风险评估要求
请从多个维度进行系统性风险评估：

### 1. 🏛️ 系统性风险评估
- **市场风险**：
  - Beta系数：{data.get('beta', 'N/A')}
  - 20日波动率：{PromptGenerator.format_percentage(data.get('volatility_20d'))}
  - 市场敏感性分析
  - 大盘联动性评估

- **行业风险**：
  - 所属行业：{data.get('sector', 'N/A')} / {data.get('industry', 'N/A')}
  - 行业周期性特征
  - 行业政策风险
  - 行业竞争格局风险

- **宏观经济风险**：
  - 利率敏感性
  - 通胀影响
  - 经济周期敏感性
  - 汇率风险（如适用）

### 2. 🏢 公司特异性风险
- **经营风险**：
  - 业务模式可持续性
  - 客户集中度风险
  - 产品/服务依赖性
  - 技术迭代风险

- **财务风险**：
  - 债务股权比：{data.get('debt_to_equity', 'N/A')}
  - 流动比率：{data.get('current_ratio', 'N/A')}
  - 速动比率：{data.get('quick_ratio', 'N/A')}
  - 现金流风险：{PromptGenerator.format_currency(data.get('free_cashflow'))}

- **估值风险**：
  - 当前估值水平：PE {data.get('pe_ratio', 'N/A')}, PB {data.get('pb_ratio', 'N/A')}
  - 估值泡沫风险
  - 下修风险
  - 流动性风险

### 3. 🔍 专业风险评级分析
- **官方风险评级**：
  - 整体风险：{data.get('overall_risk', 'N/A')}
  - 审计风险：{data.get('audit_risk', 'N/A')}
  - 董事会风险：{data.get('board_risk', 'N/A')}
  - 薪酬风险：{data.get('compensation_risk', 'N/A')}
  - 股东权益风险：{data.get('share_holder_rights_risk', 'N/A')}

### 4. 📊 市场情绪风险
- **投资者结构风险**：
  - 机构持股比例：{PromptGenerator.format_percentage(data.get('held_percent_institutions'))}
  - 内部持股：{PromptGenerator.format_percentage(data.get('held_percent_insiders'))}
  - 做空比例：{PromptGenerator.format_percentage(data.get('short_percent_of_float'))}
  - 股东结构稳定性

- **分析师预期风险**：
  - 分析师评级分歧度
  - 目标价实现风险
  - 预期下调风险

### 5. 🚨 风险事件识别
- **潜在风险因素**：
  - 法律合规风险
  - 监管变化风险
  - 声誉风险
  - 关键人员依赖风险

- **重大风险预警**：
  - 财务造假可能性
  - 退市风险
  - 重大亏损风险
  - 债务违约风险

### 6. 🛡️ 风险控制建议
- **仓位管理**：
  - 建议最大持仓比例
  - 分散投资建议
  - 对冲策略建议

- **监控指标**：
  - 需要重点监控的风险指标
  - 预警阈值设定
  - 定期评估频率

- **退出策略**：
  - 止损位设定
  - 风险加大时的退出信号
  - 应急处理预案

### 7. 📋 风险综合评级
- **整体风险等级**：低风险/中等风险/高风险/极高风险
- **主要风险来源**：识别最重要的3-5个风险因素
- **风险收益比评估**：基于风险水平的投资价值评估
- **适合投资者类型**：保守型/稳健型/积极型/投机型

请提供详细的风险分析和专业的风险管理建议。"""

    @staticmethod
    def generate_outlook_prompt(data: Dict[str, Any]) -> str:
        """生成前景展望提示词"""
        stock_info = PromptGenerator.build_stock_info(data)

        return f"""你是一位资深行业分析师和投资策略师。请基于以下详细的数据进行全面的发展前景和长期投资价值分析：

{stock_info}

## 🔮 专业前景展望分析要求
请从战略高度进行深度前景分析：

### 1. 🏢 公司基本面前景
- **核心竞争力分析**：
  - 护城河深度评估
  - 品牌价值与市场地位
  - 技术优势与创新能力
  - 管理团队质量

- **商业模式可持续性**：
  - 收入来源多样性
  - 客户粘性评估
  - 商业模式可扩展性
  - 抗风险能力

### 2. 📈 行业发展趋势
- **行业成长空间**：
  - 行业生命周期阶段
  - 市场规模增长预期
  - 技术变革驱动因素
  - 政策环境支持度

- **竞争格局演变**：
  - 行业集中度趋势
  - 主要竞争对手动态
  - 新进入者威胁
  - 替代品威胁

### 3. 💰 成长驱动因素识别
- **内生增长动力**：
  - 营收增长率：{PromptGenerator.format_percentage(data.get('revenue_growth'))}
  - 净利润增长率：{PromptGenerator.format_percentage(data.get('earnings_growth'))}
  - 季度增长趋势：{PromptGenerator.format_percentage(data.get('earnings_quarterly_growth'))}
  - 新产品/新业务贡献

- **外延扩张机会**：
  - 并购整合能力
  - 国际化扩张潜力
  - 战略合作机会
  - 产业链延伸可能

### 4. 🎯 长期投资价值评估
- **内在价值成长性**：
  - 每股收益增长预期
  - ROE持续性：{PromptGenerator.format_percentage(data.get('roe'))}
  - 自由现金流创造能力：{PromptGenerator.format_currency(data.get('free_cashflow'))}
  - 资本配置效率

- **估值提升空间**：
  - 估值倍数扩张潜力
  - 盈利质量改善空间
  - 投资者偏好变化
  - 市场认知度提升

### 5. 📊 关键里程碑预测
- **短期里程碑（1-2年）**：
  - 业绩增长目标
  - 关键项目落地
  - 市场份额提升
  - 技术突破预期

- **中期里程碑（3-5年）**：
  - 行业地位目标
  - 财务指标改善
  - 业务版图扩张
  - 价值创造预期

- **长期愿景（5-10年）**：
  - 战略目标实现
  - 行业领导地位
  - 可持续发展能力
  - 股东回报预期

### 6. 🔮 情景分析
- **乐观情景**：
  - 最佳发展路径
  - 超预期因素识别
  - 估值上限预期
  - 投资回报预期

- **基准情景**：
  - 合理增长预期
  - 中性假设条件
  - 实现概率评估
  - 合理价值区间

- **悲观情景**：
  - 主要风险因素
  - 下行风险保护
  - 最差情况评估
  - 风险控制措施

### 7. 📋 投资建议与策略
- **长期投资评级**：
  - 强烈推荐/推荐/中性/回避
  - 投资逻辑阐述
  - 关键假设条件
  - 不确定性因素

- **投资时机判断**：
  - 当前时点适宜性
  - 最佳入场时机
  - 仓位配置建议
  - 持有周期建议

- **跟踪监控要点**：
  - 关键业绩指标
  - 里程碑达成情况
  - 风险信号识别
  - 评估调整频率

请提供前瞻性的深度分析和具体的长期投资建议。"""

    @staticmethod
    def generate_prompt_by_type(data: Dict[str, Any], analysis_type: str) -> str:
        """
        根据分析类型生成对应的提示词

        Args:
            data: 包含股票数据和分析类型的数据字典
            analysis_type: 分析类型

        Returns:
            生成的提示词
        """
        prompt_generators = {
            'comprehensive': PromptGenerator.generate_comprehensive_prompt,
            'valuation': PromptGenerator.generate_valuation_prompt,
            'financial': PromptGenerator.generate_financial_prompt,
            'technical': PromptGenerator.generate_technical_prompt,
            'risk': PromptGenerator.generate_risk_prompt,
            'outlook': PromptGenerator.generate_outlook_prompt,
        }

        generator = prompt_generators.get(analysis_type)
        if generator:
            return generator(data)
        else:
            # 默认使用综合分析
            return PromptGenerator.generate_comprehensive_prompt(data)